package com.baba.vote.service;

import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;

/**
 * @auther lyd
 * @createDate 2019/8/25 22:06
 */
public interface FileService {

  /**
   * 客户端下载服务端上的图片文件
   *
   * @param filePath 要下载的文件的路径(包含后缀)
   * @param response 响应的封装对象
   */
  void downloadFile(String filePath, String newFileName, HttpServletResponse response);

  /**
   * 根据图片URL，下载图片
   *
   * @param picUrl   图片的url地址
   * @param tagDir   下载的图片存储位置的绝对路径，例如，
   * @param fileName 下载的文件命名(不包括后缀)
   */
  String downloadPicture(String picUrl, String tagDir, String fileName);

  /**
   * 将图片写入本地磁盘中
   *
   * @param inputStream 图片的输入流
   * @param tagDir      图片的存储路径
   * @param fileName    图片的命名
   */
  String writePic2Disk(InputStream inputStream, String tagDir, String fileName);

  /**
   * 删除本地的文件
   * @param filePath 删除的文件的路径（包含后缀）
   */
  void deleteLocalFile(String filePath);

  /**
   * 上传文件
   * @param file 文件
   * @param path 存储路径 比如：/Users/lyd
   * @param newFileName 文件名 index
   */
  String upload(MultipartFile file, String path, String newFileName);

  /**
   * 将本地图上上传至阿里oss
   */
  String uploadPictureAliOss(String filePath);

  /**
   * 将本地图上上传至阿里oss
   */
  String uploadPictureAliOss(InputStream fileInputStream, String objectName);

  /**
   * 删除阿里oss储存的图片
   */
  void deletePictureAliOss(String objectNamePath);
}
